package org.monster.context.core.file;

import org.monster.context.core.WebAppsFile;

import java.io.File;
import java.util.Timer;

/**
 * 文件监视器
 *
 * @author Monster
 */
public class FileMonitor {

    /**
     * 文件安排器任务
     */
    private FileSchedulerTask task;
    /**
     * 文件安排器
     */
    private FileScheduler scheduler;

    /**
     * @param file        文件
     * @param webAppsFile 网应用文件
     * @param set         文件 集合
     * @param invoker     文件调用者
     * @param catalog     文件目录
     */
    public FileMonitor(File file, WebAppsFile webAppsFile, FileSet set,
                       FileInvoker invoker, FileCatalog catalog) {
        task = new FileSchedulerTask(file, webAppsFile, set, invoker, catalog);
        scheduler = new FileScheduler(new Timer());
    }

    /**
     * 开始
     *
     * @param step 时间阶梯
     */
    public void start(TimeStep step) {
        scheduler.schedule(task, step);
    }

    /**
     * 停止
     */
    public void stop() {
        scheduler.stopSchedule();
    }

}
